#include"comm.hpp"
#include"log.hpp"
using namespace std;

int main()
{
    //客户端或服务端 管理管道文件，这里是由服务端管理。管理管道文件--》创建文件+清理文件
   Init init;

   Log log;
   log.Enable(Classfile);   //也管理了日志
   
   //读文件，server读，client写
   int fd=open(FIFO_FILE,O_RDONLY);   //O_RDONLY:只读方式打开文件。会等待写入方打开之后，自己才会打开，向后执行，写端不开，则open阻塞----先写后读。
   if(fd<0)
   {
        log(Fatal, "error string: %s, error code: %d", strerror(errno), errno);
        exit(FIFO_OPEN_ERR);
   }

   log(Info, "server open file done, error string: %s, error code: %d", strerror(errno), errno);
   log(Warning, "server open file done, error string: %s, error code: %d", strerror(errno), errno);
   log(Fatal, "server open file done, error string: %s, error code: %d", strerror(errno), errno);
   log(Debug, "server open file done, error string: %s, error code: %d", strerror(errno), errno);

   //开始通信
   char buffer[MAX]={0};
   while(true)
   {
         int n=read(fd,buffer,sizeof(buffer));
         if(n>0)
         {
             buffer[n]=0;
             cout<<"client say#"<<buffer<<endl;
         }
         else if(n==0)    //此时写端关闭，读端会读到文件尾，放回0
         {
            log(Debug, "client quit, me too!, error string: %s, error code: %d", strerror(errno), errno);
             break;
         }
         else    
             break;
   }

   //关闭管道文件
   close(fd);



   return 0;
}